#include<stdio.h>

/*
真题练习
    定义加减乘除四个函数
    用户使用键盘录入三个数字
    前两个数字参与运算
    第三个数字表示调用的函数（1：加；2：减；3：乘；4：除）

    细节：只有形参完全相同，而且返回值也要完全相同时，才能放进同一个数组
*/

int add(int num1, int num2);//函数声明
int subtract(int num1, int num2);
int multiply(int num1, int num2);
int divide(int num1, int num2);

int main()
{
    int (*arr[4])(int,int) = {add,subtract,multiply,divide};//函数指针数组

    printf("请录入两个数字参与计算:\n");
    int a,b;
    scanf("%d%d",&a,&b);

        printf("请录入数字表示调用的函数（1：加；2：减；3：乘；4：除）\n");
    CHOOSE:
        int choose;
        scanf("%d",&choose);

    if (choose>=1&choose<=4)
    {
        int res = (arr[choose - 1])(a,b);
        printf("计算结果为：%d\n",res);
    }
    else
    {
        printf("您选择的计算类型不存在，请重新输入（1：加；2：减；3：乘；4：除）\n");
        goto CHOOSE;
    }

    return 0;
}

int add(int num1,int num2)//加法
{
    return num1 + num2;
}
int subtract(int num1,int num2)//减法
{
    return num1 - num2;
}
int multiply(int num1,int num2)//乘法
{
    return num1 * num2;
}
int divide(int num1,int num2)//除法
{
    return num1 / num2;
}